/*
 * string.c
 *
 * Funcoes de manipulacao de strings
 *
 *  Created on: 18/09/2010
 *      Author: Wendell
 */

#include <system.h>
#include <string.h>

// Retorna o tamanho da string dada
int strlen(char *str) {
	int size = 0;
	while(*(str++)) {
		++size;
	}
	return size;
}

//Copia a string orig na string dest
void strcpy(char *dest, char *orig) {
	while((*(dest++) = *(orig++)));
}

//Compara a string s com a string t
//Retorna a diferenca ASCII:
//	Positivo se s>t
//	Negativo de s<t
//	Zero se s==t
int strcmp(char *s, char *t) {

	while(*s==*t && *s && *t) {
		s++;
		t++;
	}
	return *s - *t;
}

// Converte um Inteiro em String
void itoa(int n, char *str) {
	int q = n;
	int i, r, c=1;

	while(q >= 10) {
		r = q%10;
		q = q/10;
		str[c-1] = r+48;
		c++;
	}
	str[c-1] = q+48;

	char aux[12];
	strcpy(aux, str);
	for(i=0; i<c; ++i) {
		str[i] = aux[c-(i+1)];
	}
}

// Contatena duas Strings
char * strcat(char * dest, const char * src) {
	char *tmp = dest;

	while (*dest) {
		dest++;
	}
	while ((*dest++ = *src++) != '\0') ;

	return tmp;
}


